package com.ruoyi.drone.mapper;

import java.util.List;
import com.ruoyi.drone.domain.DroneTask;

/**
 * 任务发布Mapper接口
 * 
 * @author ruoyi
 * @date 2024-01-01
 */
public interface DroneTaskMapper 
{
    /**
     * 查询任务发布
     * 
     * @param taskId 任务发布主键
     * @return 任务发布
     */
    public DroneTask selectDroneTaskByTaskId(Long taskId);

    /**
     * 根据任务编号查询任务发布
     * 
     * @param taskNo 任务编号
     * @return 任务发布
     */
    public DroneTask selectDroneTaskByTaskNo(String taskNo);

    /**
     * 查询任务发布列表
     * 
     * @param droneTask 任务发布
     * @return 任务发布集合
     */
    public List<DroneTask> selectDroneTaskList(DroneTask droneTask);

    /**
     * 根据组织ID查询任务发布列表
     * 
     * @param orgId 组织ID
     * @return 任务发布集合
     */
    public List<DroneTask> selectDroneTaskListByOrgId(Long orgId);

    /**
     * 新增任务发布
     * 
     * @param droneTask 任务发布
     * @return 结果
     */
    public int insertDroneTask(DroneTask droneTask);

    /**
     * 修改任务发布
     * 
     * @param droneTask 任务发布
     * @return 结果
     */
    public int updateDroneTask(DroneTask droneTask);

    /**
     * 删除任务发布
     * 
     * @param taskId 任务发布主键
     * @return 结果
     */
    public int deleteDroneTaskByTaskId(Long taskId);

    /**
     * 批量删除任务发布
     * 
     * @param taskIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteDroneTaskByTaskIds(Long[] taskIds);

    /**
     * 检查任务编号是否已存在
     * 
     * @param taskNo 任务编号
     * @return 结果
     */
    public int checkTaskNoUnique(String taskNo);

    /**
     * 更新任务状态
     * 
     * @param droneTask 任务发布
     * @return 结果
     */
    public int updateDroneTaskStatus(DroneTask droneTask);
}
